# -*- coding: utf-8 -*-
# @Author : felix


# 变量渲染
# 字符串模板进行参数渲染
# 使用jinja2 模板引擎
# https://docs.jinkan.org/docs/jinja2/templates.html#

from jinja2 import Template

def t_refresh(target, context):
    """
    把初始数据中需要渲染的数据变成context 当当中的值
    :param target:  你的初始数据，用{{变量名}}  ，即请求数据
    :param context:  你的初始数据渲染的值   ---全局变量中
    :return:

    总结：
    target  就是原始数据，使用{{变量名}}，站位，在content 数据中匹配到对应的数据，例如变量名{{token}},则在content数据中必须有token对应的值
    才可以匹配到数据，返回的是字符串的格式


    """

    if target is None: return None
    return Template(str(target)).render(context)


if __name__ == '__main__':
    # target = "Hello {{name}},{{nihao}},{{token}}"

    data = {
        "api" : "s",
        "token" : "{{token}}"
    }

    target = {
        "name": "{{name}}",
        "token": "{{token}}",
        "type": "{{type}}",
        "age": 19,
        "address": data
    }
    content = {"name":"felix","token":"345"}
    data = t_refresh(target, content)
    print(data)
    print(type(data))   # 渲染后的数据是字符类型的数据






